package com.example.composite.demo.safe.tree;

public class Test {
    public static void main(String[] args) {

        // 根节点
        Node root = new Node("root", 1);

        // 1级节点
        Node node_1 = new Node("node-1", 2);
        // 2级节点
        LeafNode node_1_1 = new LeafNode("node-1-1");
        LeafNode node_1_2 = new LeafNode("node-1-2");
        LeafNode node_1_3 = new LeafNode("node-1-3");

        // 2级节点添加到1级节点
        node_1.addNode(node_1_1);
        node_1.addNode(node_1_2);
        node_1.addNode(node_1_3);

        // 1级节点
        LeafNode node_2 = new LeafNode("node-2");

        // 1级节点
        Node node_3 = new Node("node-3", 2);

        // 2级节点
        Node node_3_1 = new Node("node-3-1", 3);
        LeafNode node_3_1_1 = new LeafNode("node-3-1-1");
        node_3_1.addNode(node_3_1_1);

        // 2级节点
        Node node_3_2 = new Node("node-3-2",3);
        LeafNode node_3_2_1 = new LeafNode("node-3-2-1");
        LeafNode node_3_2_2 = new LeafNode("node-3-2-2");
        node_3_2.addNode(node_3_2_1);
        node_3_2.addNode(node_3_2_2);

        // 2级节点
        Node node_3_3 = new Node("node-3-3",3);
        LeafNode node_3_3_1 = new LeafNode("node-3-3-1");
        node_3_3.addNode(node_3_3_1);

        // 2级节点添加到1级节点中
        node_3.addNode(node_3_1);
        node_3.addNode(node_3_2);
        node_3.addNode(node_3_3);

        // 1级节点添加到根节点
        root.addNode(node_1);
        root.addNode(node_2);
        root.addNode(node_3);

        // 显示树结构信息
        root.showInfo();
    }
}
